package ar.com.gestion.vistas;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

import ar.com.gestion.GestionUtils;
import ar.com.gestion.bo.UsuariosBO;
import ar.com.gestion.bo.VentasBO;
import ar.com.gestion.dominio.Venta;
import ar.com.gestion.listeners.ListenerMedidas;
import ar.com.gestion.listeners.PagarFiadoListener;
import ar.com.gestion.springcontext.SpringContext;
import ar.com.gestion.usuarios.CancelarListener;

public class ViewPagarFiado extends JFrame {

	private UsuariosBO usuariosBO = (UsuariosBO) SpringContext.getContext()
			.getBean("usuariosBO");

	private VentasBO ventaBO = (VentasBO) SpringContext.getContext().getBean(
			"ventasBO");

	private JComboBox<Venta> comboCliente = new JComboBox<Venta>();

	private JTextField textoDeuda;
	private JTextField textoaPagar;

	public ViewPagarFiado() {

		textoDeuda = new JTextField();
		textoaPagar = new JTextField();
		JButton aceptar, cancelar;

		textoDeuda.setEnabled(false);
		
		textoaPagar.setEnabled(false);
		
		aceptar = new JButton("Aceptar");
		cancelar = new JButton("Cancelar");

		setLayout(new GridLayout(4, 2));

		List<Venta> obtenerDeudoresFiados = ventaBO.obtenerDeudoresFiados();
		DefaultComboBoxModel<Venta> comboModel = new DefaultComboBoxModel<Venta>();
		comboModel.addElement(null);

		for (Venta venta : obtenerDeudoresFiados) {
			comboModel.addElement(venta);
		}

		if (obtenerDeudoresFiados.size() > 0) {
			comboCliente.setModel(comboModel);

		}

		comboCliente.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				
				recheck();
				Venta venta =(Venta) comboCliente.getSelectedItem();
				if (venta != null){
				float montoTotalDeuda = venta.getSaldo();
				float montoDePagosRealizados = venta.getMontoDePagosRealizados();
				
				textoDeuda.setText(String.valueOf(montoTotalDeuda-montoDePagosRealizados));
				}else {
					
					textoDeuda.setText("");
					textoaPagar.setText("");
					textoaPagar.setEnabled(false);
					
					
				}
				
				
				
				
			}
		});

		
		add(new JLabel("Usuario"));
		add(comboCliente);
		add(new JLabel("Monto Deuda"));
		add(textoDeuda);
		add(new JLabel("Monto a pagar"));
		add(textoaPagar);
		add(aceptar);
		add(cancelar);
		
		setVisible(true);
		setSize(279,143);
		setResizable(false);
		GestionUtils.obtenerUbicacionEnPantalla(this);
		aceptar.addActionListener(new PagarFiadoListener(this));
		cancelar.addActionListener(new CancelarListener(this));

	}
	
	public void recheck(){
		if(comboCliente.getSelectedIndex() != -1)
		
		textoaPagar.setEnabled(true);
		
	}


	public JTextField getTextoDeuda() {
		return textoDeuda;
	}

	public void setTextoDeuda(JTextField textoDeuda) {
		this.textoDeuda = textoDeuda;
	}

	public JTextField getTextoaPagar() {
		return textoaPagar;
	}

	public void setTextoaPagar(JTextField textoaPagar) {
		this.textoaPagar = textoaPagar;
	}
	
	public Venta getVenta(){
		
		return (Venta)comboCliente.getSelectedItem();
		
	}
	
	
	

}
